/*********************************************************************\
*
*                  (c) lkc
*                  All Rights Reserved. lkc Confidential
*
\*********************************************************************/
/*********************************************************************\
*   Title                      :
*
*   Module Description         :
*
*   Author                     : lkc
*
*   Created                    : 2017-7-24
*
\*********************************************************************/
#ifndef GPIO_H
#define GPIO_H

enum class IoValue
{
    LOW = 0,
    HIGH = 1
};

class Gpio
{
public:
    enum class Dir
    {
        IN = 0,
        OUT = 1
    };
    Gpio(int pin);
    Gpio& operator = (const Gpio&) = delete;
    Gpio(const Gpio&)= delete;
    void ExportIo();
    void UnexportIo();
    void SetDirection(const Dir direction);
    void Write(const IoValue value) const;
    int Read() const;
    ~Gpio();

private:
    int m_pin;
    Dir m_direction;

//    std::string m_valueFileStr;
//    std::string m_directionFileStr;
};




#endif // GPIO_H
/********************************************************************\
 *
 * REVISION RECORDS
 *
\*********************************************************************/
/*********************************************************************/
/*
 *
 *
 *
\*********************************************************************/
/*------------------------------The End------------------------------*/

